<template>
    <div>
<van-form @submit="onSubmit">
  <van-cell-group inset>
    <van-field
      v-model="username"
      name="用户名"
      label="账号"
      placeholder="手机号码或邮箱"
      :rules="[{ required: true, message: '手机号11位数字'}]"
    />
    

    <van-field
      v-model="password"
      type="password"
      name="密码"
      label="密码"
      placeholder="密码"
      :rules="[{ pattern, message: '密码不少于8位数字和字母' }]"
    />
    <van-switch v-model="checked" />
  </van-cell-group>
  <div style="margin: 16px;">
    <van-button round block type="primary" native-type="submit">
      提交
    </van-button>
  </div>
  <div style="margin: 16px;">
    <van-button round block type="primary" native-type="submit" @click="pushxc">
      注册
    </van-button>
  </div>
</van-form>

    </div>
</template>

<script setup>
import { ref } from 'vue';
import {loginApi} from '../request/api'
import { showToast } from 'vant';
import {useRouter} from 'vue-router'
const router=new useRouter()
const checked=ref(true)
const username = ref('');
    const password = ref('');
    const onSubmit = (values) => {
      console.log('submit', values);
      loginApi(username.value,password.value).then(res=>{
        console.log('登录',res)
        if(res.data.code==0){
            localStorage.setItem('token',res.data.data.token)
            localStorage.setItem('username',res.data.data.username)
            showToast({
                type:'success',
                message:'登录成功',
                duration:2000,
                onClose(){
                    router.push('/home/my')
                }
            })
        }else{
            showToast({
                type:'fail',
                message:'登录失败',
                duration:2000,
                onClose(){
                    username.value=''
                    password.value=''
                }
            })
        }
      })
    };
    //密码验证
    const pattern=/^[a-zA-Z0-9]{8,16}$/
    const pushxc=()=>{
      router.push('/register')
    }
</script>

<style lang="scss" scoped>

</style>